﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.Common;
    using WMS6.DataEntity;
    using WMS6.QueryEntity;

    [ServiceContract(Namespace="WMS6.Services")]
    public interface IInvMovementService
    {
        [OperationContract, FaultContract(typeof(PubParasInfo)), FaultContract(typeof(FaultDetail))]
        string AllocateMovement(string MovementID, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(PubParasInfo)), FaultContract(typeof(FaultDetail))]
        string DeleteMovement(List<string> IDS, PubParasInfo pubParasInfo);
        [FaultContract(typeof(PubParasInfo)), OperationContract, FaultContract(typeof(FaultDetail))]
        string DeleteMovementDetail(string MovementID, List<string> IDS, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract, FaultContract(typeof(PubParasInfo)), ServiceKnownType(typeof(MovementDetailInfo))]
        MovementDetailInfo GetAllMovementDetailByID(string MovementID, string ListID, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), FaultContract(typeof(PubParasInfo))]
        DataSet GetMovementAllInfo(PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(MovementInfo)), FaultContract(typeof(PubParasInfo))]
        MovementInfo GetMovementInfoByID(string id, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(MovementQueryEntity)), FaultContract(typeof(PubParasInfo))]
        DataSet GetMovementInfoByQueryEntity(MovementQueryEntity movementQueryEntity, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(MovementInfo)), OperationContract, FaultContract(typeof(FaultDetail)), FaultContract(typeof(PubParasInfo))]
        string InsertMovement(MovementInfo movementInfo, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(PubParasInfo)), FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(MovementDetailInfo))]
        string InsertMovementDetail(MovementDetailInfo obj, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), FaultContract(typeof(PubParasInfo))]
        string MovementClose(List<string> IDS, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), FaultContract(typeof(PubParasInfo)), FaultContract(typeof(InvMovesInfo)), OperationContract]
        string MovementConfirm(string movementID, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), FaultContract(typeof(PubParasInfo))]
        string RevertAllocateMovement(string movementID, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(MovementInfo)), FaultContract(typeof(PubParasInfo))]
        string UpdateMovement(MovementInfo movementInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(PubParasInfo)), OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(MovementDetailInfo))]
        string UpdateMovementDetail(MovementDetailInfo obj, PubParasInfo pubParasInfo);
    }
}

